<?php

class Act_model extends CI_Model
{

    const tabla = 'actividades';
    const id_tabla = 'id_actividad';

    /* ------------------------ INSERTAR EN LA BASE DE DATOS----------------------- */

    function insert($row = array())
    {
        $this->db->insert(self::tabla, $row);
        return $this->db->insert_id();
    }


    /* ------------------------ BUSCAR POR ID-------------------------------------- */

    function find($id)
    {
        $query = sprintf("select * from %s where %s=%s",self::tabla, self::id_tabla, $id);
        $row = $this->db->query($query);
        return $row;
    }

    
    /* ------------------------ LISTAR TODOS LOS ELEMENTOS------------------------ */

    function select()
    {

        $query =sprintf( "select * from %s",  self::tabla);
        $rows = $this->db->query($query);
        $rows = $rows->result_array();
        return $rows;
    }

    /* ------------------------ MODIFICAR UN REGISTRO----------------------------- */

    function update($id, $row = array())
    {

        $this->db->where(self::id_tabla, $id);
        $this->db->update(self::tabla, $row);
    }

    /* ------------------------ ELIMINAR UN REGISTRO------------------------------- */

    function delete($id)
    {

        $query = sprintf("delete from %s where %s=%s",self::tabla,  self::id_tabla, $id);
        $this->db->query($query);
    }

    
    function list_act_usu($fecha,$start,$end)
    {
        
        $select="select id_actividad,a_accion,a_fecha,u_nick 
                from actividades as a inner join usuarios as u on a.id_usuario = u.id_usuario 
                where a_fecha like '".$fecha."%'";
        
        $select_count = "select 
                  count(id_actividad) as cantidad
                  from 
                  actividades as a 
                  inner join 
                  usuarios as u 
                  on 
                  a.id_usuario = u.id_usuario where a_fecha like '".$fecha."%'";
        
        
        $order = " order by a_fecha desc";
        $litmit = " limit " . $start . "," . $end . "";


        $query_final = $select . $order . $litmit;
        $query_final_count = $select_count;
        

        $row=$this->db->query($query_final_count);
        $row = $row->row();
        $cantidad = $row->cantidad;
        
        $row = $this->db->query($query_final);
        $row = $row->result_array();
        
         $array_return = array(
            'total_count' => $cantidad,
            'rows' => $row
        );
        return $array_return;
        
    }
    
    
    function select_buscar($p_nombre, $p_apellido, $p_dni, $p_historia_clinica, $os_nombre, $p_localidad, $c_fecha_cirugia_desde,$c_fecha_cirugia_hasta, $start, $end)
    {
        $where = "";

        $select_count = " select 
                        count(p.id_paciente) as cantidad         
                        from 
                        pacientes as p
                        inner join 
                        obras_sociales as os
                        on
                        os.id_obra_social = p.id_obra_social
                        left join
                        cirugias as ci
                        on 
                        p.id_paciente = ci.id_paciente
                    ";

        $select = "select
                p.id_paciente,
                p_historia_clinica,
                p_nombre,
                p_apellido,
                (YEAR(CURDATE())-YEAR(p_fecha_nacimiento)) as p_fecha_nacimiento,
                p_telefono,
                os_nombre,
                c_fecha_cirugia,
                p_localidad
                from 
                pacientes as p
                inner join 
                obras_sociales as os
                on
                os.id_obra_social = p.id_obra_social
                left join
                cirugias as ci
                on 
                p.id_paciente = ci.id_paciente";

        //Si no viene nada no pongo where
        if ($p_nombre == "" and $p_apellido == "" and $p_dni == "" and $p_historia_clinica == "" and $os_nombre == "" and $p_localidad == "" and $c_fecha_cirugia_desde== "" and $c_fecha_cirugia_hasta== "")
            $where = "";
        else
            $where = " where";

        $arg = "";

        if ($p_nombre != "")
        {
            $arg = " p_nombre='" . $p_nombre . "'";
        }
        if ($p_apellido != "")
        {
            if ($arg != "")
                $arg = $arg . " and p_apellido='" . $p_apellido . "'";
            else
                $arg = " p_apellido='" . $p_apellido . "'";
        }
        if ($p_dni != "")
        {
            if ($arg != "")
                $arg = $arg . " and p_dni='" . $p_dni . "'";
            else
                $arg = " p_dni='" . $p_dni . "'";
        }
        if ($p_historia_clinica != "")
        {
            if ($arg != "")
                $arg = $arg . " and p_historia_clinica='" . $p_historia_clinica . "'";
            else
                $arg = " p_historia_clinica='" . $p_historia_clinica . "'";
        }
        if ($os_nombre != "")
        {
            if ($arg != "")
                $arg = $arg . " and os_nombre='" . $os_nombre . "'";
            else
                $arg = $arg . " os_nombre='" . $os_nombre . "'";
        }
        if ($p_localidad != "")
        {
            if ($arg != "")
                $arg = $arg . " and p_localidad='" . $p_localidad . "'";
            else
                $arg = $arg . " p_localidad='" . $p_localidad . "'";
        }
        if ($c_fecha_cirugia_desde)
        {
            if ($arg != "")
                $arg = $arg . " and c_fecha_cirugia >='" . $c_fecha_cirugia_desde . "'";
            else
                $arg = $arg . " c_fecha_cirugia >= '" . $c_fecha_cirugia_desde . "'";
        }
        if ($c_fecha_cirugia_hasta)
        {
            if ($arg != "")
                $arg = $arg . " and c_fecha_cirugia <='" . $c_fecha_cirugia_hasta . "'";
            else
                $arg = $arg . " c_fecha_cirugia <= '" . $c_fecha_cirugia_hasta . "'";
        }

        $order = " order by id_paciente desc";

        $litmit = " limit " . $start . "," . $end . "";

        $group = " group by p.id_paciente";

        $query_final = $select . $where . $arg . $group . $order . $litmit;
        $query_final_count = $select_count . $where . $arg;

        $row_count = $this->db->query($query_final_count);
        $row_count = $row_count->row();
        $total_count = $row_count->cantidad;

        $rows = $this->db->query($query_final);
        $rows = $rows->result_array();

        $array_return = array(
            'total_count' => $total_count,
            'rows' => $rows
        );
        return $array_return;
    }
    
    
    function detalle_find($id_actividad)
    {
        $query=sprintf("select a_detalle from actividades where id_actividad=%s",$id_actividad);
        $row = $this->db->query($query);
        $row = $row->row();
        return $row->a_detalle;
    }
}

?>
